package org.jeecgframework.web.system.pojo.base;

import java.math.BigDecimal;
import java.util.Date;
import java.lang.String;
import java.lang.Double;
import java.lang.Integer;
import java.math.BigDecimal;
import javax.persistence.*;
import javax.xml.soap.Text;
import java.sql.Blob;
import java.util.List;

import org.codehaus.jackson.annotate.JsonIgnore;
import org.hibernate.annotations.GenericGenerator;
import org.jeecgframework.poi.excel.annotation.Excel;

/**
 * @Title: Entity
 * @Description: 服务合同信息
 * @author onlineGenerator
 * @date 2018-01-17 23:45:36
 * @version V1.0
 *
 */
@Entity
@Table(name = "CBS_CONTRACT", schema = "")
@SuppressWarnings("serial")
public class CbsContractEntity implements java.io.Serializable {
	/**主键*/
	private String id;
	/**合同编号*/
	@Excel(name="合同编号")
	private String contractCode;
	/**合同名称*/
	@Excel(name="合同名称")
	private String contractName;
	/**合同类型*/
	@Excel(name="合同类型")
	private String contractType;
	/**甲方名称*/
	@Excel(name="甲方名称")
	private String clientName;
	/**合同生效日期*/
	@Excel(name="合同生效日期")
	private Date contractDate;
	/**合同签署人*/
	@Excel(name="合同签署人")
	private String contractSignUser;
	/**备注*/
	@Excel(name="备注")
	private String memo;
	/**维修派单规则服务商*/
	@Excel(name="维修派单规则服务商")
	private String repairProvider;
	/**维修派单规则服务商指派类型*/
	@Excel(name="维修派单规则服务商指派类型")
	private Integer repairType;
	/**巡检派单规则服务商*/
	@Excel(name="巡检派单规则服务商")
	private String inspectionProvider;
	/**巡检派单规则服务商指派类型*/
	@Excel(name="巡检派单规则服务商指派类型")
	private Integer inspectionType;
	/**特别服务承诺*/
	@Excel(name="特别服务承诺")
	private String serviceCommitment;
	/**付款状态*/
	@Excel(name="付款状态")
	private Integer payStatus;
	/**付款日期*/
	@Excel(name="付款日期")
	private Date payDate;
	/**合同状态*/
	@Excel(name="合同状态")
	private Integer status;
	/**撤销原因*/
	@Excel(name="撤销原因")
	private String cancelDes;
	/**编辑状态*/
	@Excel(name="编辑状态")
	private Integer editStatus;
	/*付款周期*/
	private String payCircle;
	private List<SlaContractEntity> slaContractList;
	/**创建人名称*/
	private String createName;
	/**创建人登录名称*/
	private String createBy;
	/**创建日期*/
	private Date createDate;
	/**更新人名称*/
	private String updateName;
	/**更新人登录名称*/
	private String updateBy;
	/**更新日期*/
	private Date updateDate;
	private String slaId;
	private String serviceName;
	private String description;
	private String supplement;

	@JsonIgnore
	@OneToMany(mappedBy="contractId",fetch = FetchType.LAZY,cascade={CascadeType.REMOVE})
	public List<SlaContractEntity> getSlaContractList() {
		return slaContractList;
	}

	public void setSlaContractList(List<SlaContractEntity> slaContractList) {
		this.slaContractList = slaContractList;
	}

	@Column(name ="pay_circle")
	public String getPayCircle() {
		return payCircle;
	}

	public void setPayCircle(String payCircle) {
		this.payCircle = payCircle;
	}

	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  主键
	 */
	@Id
	@GeneratedValue(generator = "paymentableGenerator")
	@GenericGenerator(name = "paymentableGenerator", strategy = "uuid")
	@Column(name ="ID",nullable=false,length=36)
	public String getId(){
		return this.id;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  主键
	 */
	public void setId(String id){
		this.id = id;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  合同编号
	 */
	@Column(name ="CONTRACT_CODE",nullable=false,length=50)
	public String getContractCode(){
		return this.contractCode;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  合同编号
	 */
	public void setContractCode(String contractCode){
		this.contractCode = contractCode;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  合同名称
	 */
	@Column(name ="CONTRACT_NAME",nullable=true,length=100)
	public String getContractName(){
		return this.contractName;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  合同名称
	 */
	public void setContractName(String contractName){
		this.contractName = contractName;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  合同类型
	 */
	@Column(name ="CONTRACT_TYPE",nullable=true,length=36)
	public String getContractType(){
		return this.contractType;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  合同类型
	 */
	public void setContractType(String contractType){
		this.contractType = contractType;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  甲方名称
	 */
	@Column(name ="CLIENT_NAME",nullable=true,length=100)
	public String getClientName(){
		return this.clientName;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  甲方名称
	 */
	public void setClientName(String clientName){
		this.clientName = clientName;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  合同生效日期
	 */
	@Column(name ="CONTRACT_DATE",nullable=true,length=32)
	public Date getContractDate(){
		return this.contractDate;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  合同生效日期
	 */
	public void setContractDate(Date contractDate){
		this.contractDate = contractDate;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  合同签署人
	 */
	@Column(name ="CONTRACT_SIGN_USER",nullable=true,length=50)
	public String getContractSignUser(){
		return this.contractSignUser;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  合同签署人
	 */
	public void setContractSignUser(String contractSignUser){
		this.contractSignUser = contractSignUser;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  备注
	 */
	@Column(name ="MEMO",nullable=true,length=200)
	public String getMemo(){
		return this.memo;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  备注
	 */
	public void setMemo(String memo){
		this.memo = memo;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  维修派单规则服务商
	 */
	@Column(name ="REPAIR_PROVIDER",nullable=true,length=36)
	public String getRepairProvider(){
		return this.repairProvider;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  维修派单规则服务商
	 */
	public void setRepairProvider(String repairProvider){
		this.repairProvider = repairProvider;
	}
	/**
	 *方法: 取得java.lang.Integer
	 *@return: java.lang.Integer  维修派单规则服务商指派类型
	 */
	@Column(name ="REPAIR_TYPE",nullable=true,length=1)
	public Integer getRepairType(){
		return this.repairType;
	}

	/**
	 *方法: 设置java.lang.Integer
	 *@param: java.lang.Integer  维修派单规则服务商指派类型
	 */
	public void setRepairType(Integer repairType){
		this.repairType = repairType;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  巡检派单规则服务商
	 */
	@Column(name ="INSPECTION_PROVIDER",nullable=true,length=36)
	public String getInspectionProvider(){
		return this.inspectionProvider;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  巡检派单规则服务商
	 */
	public void setInspectionProvider(String inspectionProvider){
		this.inspectionProvider = inspectionProvider;
	}
	/**
	 *方法: 取得java.lang.Integer
	 *@return: java.lang.Integer  巡检派单规则服务商指派类型
	 */
	@Column(name ="INSPECTION_TYPE",nullable=true,length=1)
	public Integer getInspectionType(){
		return this.inspectionType;
	}

	/**
	 *方法: 设置java.lang.Integer
	 *@param: java.lang.Integer  巡检派单规则服务商指派类型
	 */
	public void setInspectionType(Integer inspectionType){
		this.inspectionType = inspectionType;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  特别服务承诺
	 */
	@Column(name ="SERVICE_COMMITMENT",nullable=true,length=200)
	public String getServiceCommitment(){
		return this.serviceCommitment;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  特别服务承诺
	 */
	public void setServiceCommitment(String serviceCommitment){
		this.serviceCommitment = serviceCommitment;
	}
	/**
	 *方法: 取得java.lang.Integer
	 *@return: java.lang.Integer  付款状态
	 */
	@Column(name ="PAY_STATUS",nullable=true,length=1)
	public Integer getPayStatus(){
		return this.payStatus;
	}

	/**
	 *方法: 设置java.lang.Integer
	 *@param: java.lang.Integer  付款状态
	 */
	public void setPayStatus(Integer payStatus){
		this.payStatus = payStatus;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  付款日期
	 */
	@Column(name ="PAY_DATE",nullable=true,length=32)
	public Date getPayDate(){
		return this.payDate;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  付款日期
	 */
	public void setPayDate(Date payDate){
		this.payDate = payDate;
	}
	/**
	 *方法: 取得java.lang.Integer
	 *@return: java.lang.Integer  合同状态
	 */
	@Column(name ="STATUS",nullable=true,length=1)
	public Integer getStatus(){
		return this.status;
	}

	/**
	 *方法: 设置java.lang.Integer
	 *@param: java.lang.Integer  合同状态
	 */
	public void setStatus(Integer status){
		this.status = status;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  撤销原因
	 */
	@Column(name ="CANCEL_DES",nullable=true,length=255)
	public String getCancelDes(){
		return this.cancelDes;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  撤销原因
	 */
	public void setCancelDes(String cancelDes){
		this.cancelDes = cancelDes;
	}
	/**
	 *方法: 取得java.lang.Integer
	 *@return: java.lang.Integer  编辑状态
	 */
	@Column(name ="EDIT_STATUS",nullable=true,length=32)
	public Integer getEditStatus(){
		return this.editStatus;
	}

	/**
	 *方法: 设置java.lang.Integer
	 *@param: java.lang.Integer  编辑状态
	 */
	public void setEditStatus(Integer editStatus){
		this.editStatus = editStatus;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  创建人名称
	 */
	@Column(name ="CREATE_NAME",nullable=true,length=50)
	public String getCreateName(){
		return this.createName;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  创建人名称
	 */
	public void setCreateName(String createName){
		this.createName = createName;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  创建人登录名称
	 */
	@Column(name ="CREATE_BY",nullable=true,length=50)
	public String getCreateBy(){
		return this.createBy;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  创建人登录名称
	 */
	public void setCreateBy(String createBy){
		this.createBy = createBy;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  创建日期
	 */
	@Column(name ="CREATE_DATE",nullable=true,length=20)
	public Date getCreateDate(){
		return this.createDate;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  创建日期
	 */
	public void setCreateDate(Date createDate){
		this.createDate = createDate;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  更新人名称
	 */
	@Column(name ="UPDATE_NAME",nullable=true,length=50)
	public String getUpdateName(){
		return this.updateName;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  更新人名称
	 */
	public void setUpdateName(String updateName){
		this.updateName = updateName;
	}
	/**
	 *方法: 取得java.lang.String
	 *@return: java.lang.String  更新人登录名称
	 */
	@Column(name ="UPDATE_BY",nullable=true,length=50)
	public String getUpdateBy(){
		return this.updateBy;
	}

	/**
	 *方法: 设置java.lang.String
	 *@param: java.lang.String  更新人登录名称
	 */
	public void setUpdateBy(String updateBy){
		this.updateBy = updateBy;
	}
	/**
	 *方法: 取得java.util.Date
	 *@return: java.util.Date  更新日期
	 */
	@Column(name ="UPDATE_DATE",nullable=true,length=20)
	public Date getUpdateDate(){
		return this.updateDate;
	}

	/**
	 *方法: 设置java.util.Date
	 *@param: java.util.Date  更新日期
	 */
	public void setUpdateDate(Date updateDate){
		this.updateDate = updateDate;
	}

	@Column(name ="sla_id",nullable=true)
	public String getSlaId() {
		return slaId;
	}

	public void setSlaId(String slaId) {
		this.slaId = slaId;
	}

	@Column(name ="serviceName",nullable=true)
	public String getServiceName() {
		return serviceName;
	}

	public void setServiceName(String serviceName) {
		this.serviceName = serviceName;
	}

	@Column(name ="description",nullable=true)
	public String getDescription() {
		return description;
	}

	public void setDescription(String description) {
		this.description = description;
	}

	@Column(name ="supplement",nullable=true)
	public String getSupplement() {
		return supplement;
	}

	public void setSupplement(String supplement) {
		this.supplement = supplement;
	}
}
